package com.ruoyi.room.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 房间信息对象 t_room
 *
 * @author ruoyi
 * @date 2025-08-14
 */
public class Room extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 名称
     */
    @Excel(name = "名称")
    private String name;

    /**
     * 图片
     */
    @Excel(name = "图片")
    private String img;

    /**
     * 房间类型
     */
    @Excel(name = "房间类型")
    private Long type;

    /**
     * 口令码
     */
    @Excel(name = "口令码")
    private String passwordCode;

    @Excel(name = "md5口令码")
    private String md5PasswordCode;

    /**
     * 流水要求
     */
    @Excel(name = "流水要求")
    private BigDecimal turnover;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "流水开始要求", width = 30, dateFormat = "yyyy-MM-dd")
    private Date turnoverStartTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "流水结束要求", width = 30, dateFormat = "yyyy-MM-dd")
    private Date turnoverEndTime;
    /**
     * 开奖时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开奖时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date publishTime;

    /**
     * 是否开奖
     */
    @Excel(name = "是否开奖")
    private Integer isPublish;

    /**
     * 规则
     */
    @Excel(name = "规则")
    private String rule;

    /**
     * 是否删除
     */
    private Integer isDelete;

    private List<RoomGood> roomGoods;

    public Date getTurnoverStartTime() {
        return turnoverStartTime;
    }

    public void setTurnoverStartTime(Date turnoverStartTime) {
        this.turnoverStartTime = turnoverStartTime;
    }

    public Date getTurnoverEndTime() {
        return turnoverEndTime;
    }

    public void setTurnoverEndTime(Date turnoverEndTime) {
        this.turnoverEndTime = turnoverEndTime;
    }

    public String getMd5PasswordCode() {
        return md5PasswordCode;
    }

    public void setMd5PasswordCode(String md5PasswordCode) {
        this.md5PasswordCode = md5PasswordCode;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getImg() {
        return img;
    }

    public void setType(Long type) {
        this.type = type;
    }

    public Long getType() {
        return type;
    }

    public void setPasswordCode(String passwordCode) {
        this.passwordCode = passwordCode;
    }

    public String getPasswordCode() {
        return passwordCode;
    }

    public void setTurnover(BigDecimal turnover) {
        this.turnover = turnover;
    }

    public BigDecimal getTurnover() {
        return turnover;
    }

    public void setPublishTime(Date publishTime) {
        this.publishTime = publishTime;
    }

    public Date getPublishTime() {
        return publishTime;
    }

    public void setIsPublish(Integer isPublish) {
        this.isPublish = isPublish;
    }

    public Integer getIsPublish() {
        return isPublish;
    }

    public void setRule(String rule) {
        this.rule = rule;
    }

    public String getRule() {
        return rule;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public List<RoomGood> getRoomGoods() {
        return roomGoods;
    }

    public void setRoomGoods(List<RoomGood> roomGoods) {
        this.roomGoods = roomGoods;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("img", getImg())
                .append("type", getType())
                .append("passwordCode", getPasswordCode())
                .append("turnover", getTurnover())
                .append("createTime", getCreateTime())
                .append("publishTime", getPublishTime())
                .append("isPublish", getIsPublish())
                .append("rule", getRule())
                .append("isDelete", getIsDelete())
                .toString();
    }
}
